﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Collections;
using IBatisNet.DataMapper;
using TumbaloSoft.Models;
using TumbaloSoft.Helpers.QueryObjects;

namespace TumbaloSoft.Helpers
{
    public class HelperComprobante
    {
        public static void insert(Comprobante comprobante)
        {
            Mapper.Instance().Insert("ComprobanteInsert", comprobante);
        }
        public static List<Comprobante> buscar(BusquedaPagos query)
        {
            IList comprobantes = Mapper.Instance().QueryForList("ComprobanteBusqueda", query);
            List<Comprobante> listaComprobantes = new List<Comprobante>(comprobantes.Cast<Comprobante>());
            foreach (Comprobante comprobante in listaComprobantes)
            {
                comprobante.prDepartamento = HelperDepartamento.selectById(comprobante.prDepartamento.prIdDepartamento);
            }
            return listaComprobantes;
        }
        public static List<Comprobante> buscarHistorial(BusquedaHistorialPagos query)
        {
            List<Comprobante> listaComprobantes = new List<Comprobante>(Mapper.Instance().QueryForList<Comprobante>("ComprobanteHistorialBusqueda",query));
            foreach (Comprobante comp in listaComprobantes)
            {
                Cuota cuota = HelperCuota.selectById(comp.prIdCuota);
                comp.prIdCuota = cuota.prIdCuota;
                comp.prMonto = cuota.prMonto;
                comp.prDepartamento = cuota.prDepartamento;
                comp.prEstado = cuota.prEstado;
                comp.prFechaEmision = cuota.prFechaEmision;
                comp.prFechaPago = cuota.prFechaPago;
                comp.prFechaVencimiento = cuota.prFechaVencimiento;
            }
            
            return listaComprobantes;
        }
        public static Comprobante selectById(string prIdComprobante, int prIdCuota)
        {
            Comprobante comp = new Comprobante();
            comp.prIdCuota = prIdCuota;
            comp.prIdComprobante = prIdComprobante;
            Comprobante comprobante = Mapper.Instance().QueryForObject<Comprobante>("ComprobanteSelectById", comp);
            return comprobante;
        }
        public static void aprobar(Comprobante comprobante)
        {
            Mapper.Instance().Update("ComprobanteAprobarUpdate", comprobante);
        }
        public static bool existe(Comprobante comprobante)
        {
            if (Mapper.Instance().QueryForObject<Int32>("ComprobanteExiste", comprobante) == 1) return true;
            return false;
        }
    }
}